<html>
<title>The Rule Table Repository</title>
<body>

<p>
Please visit the <a href="http://code.google.com/p/ruletablerepository/">Rule Table Repository</a>
web site for more information.  In particular, see
<a href="http://code.google.com/p/ruletablerepository/wiki/TheRules">TheRules</a>
page for more details about the rules listed below, including some nice images.
</p>

<p>
NOTE: Links flagged by "*" will load rules and patterns already included in the
latest version of Golly (2.1).  The other links will download external rules
and patterns not included in Golly.
</p>

<p>Contents:
<dd><a href="#jvn"><b>Von Neumann's CA and close variations</b></a></dd>
<dd><a href="#codd"><b>Codd's CA and descendents</b></a></dd>
<dd><a href="#loops"><b>Self-replicating loops</b></a></dd>
<dd><a href="#wireworld"><b>WireWorld and derivatives</b></a></dd>
<dd><a href="#comp"><b>Other computation rules</b></a></dd>
<dd><a href="#gases"><b>Lattice gases</b></a></dd>
<dd><a href="#margolus"><b>Margolus neighborhood</b></a></dd>
<dd><a href="#turing"><b>Langton's Ant and other Turing Machines</b></a></dd>
<dd><a href="#life"><b>Life-inspired CAs</b></a></dd>
<dd><a href="#misc"><b>Miscellaneous</b></a></dd>
</p>


<a name="jvn"></a>
<h1>Von Neumann's CA and close variations</h1>

<p>
<table border="0" cellspacing="2" cellpadding="0" width="100%">
<tr><td>
   <a href="rule:JvN29">JvN29</a>*
</td><td><table border="1" cellspacing="0" cellpadding="5" width="100%"><tr><td>
   John von Neumann's original 29-state CA.
</td></tr></table></td></tr>
<tr><td>
   <a href="rule:Nobili32">Nobili32</a>*
</td><td><table border="1" cellspacing="0" cellpadding="5" width="100%"><tr><td>
   Renato Nobili's extension of von Neumann's 29-state CA to allow easier crossing of wires,
   leading to enormously simpler machines.
</td></tr></table></td></tr>
<tr><td>
   <a href="rule:Hutton32">Hutton32</a>*
</td><td><table border="1" cellspacing="0" cellpadding="5" width="100%"><tr><td>
   This is a modification of Nobili32 by Tim Hutton, to allow simpler construction and
   rotational invariance.
</td></tr></table></td></tr>
</table>
</p>


<a name="codd"></a>
<h1>Codd's CA and descendents</h1>

<p>
<table border="0" cellspacing="2" cellpadding="0" width="100%">
<tr><td>
   <a href="rule:Codd">Codd</a>*
</td><td><table border="1" cellspacing="0" cellpadding="5" width="100%"><tr><td>
   Edgar F. Codd simplified von Neumann's CA to 8 states.
</td></tr></table></td></tr>
<tr><td>
   <a href="get:http://myweb.tiscali.co.uk/calcy/life/Codd-ICRA.zip">Codd-ICRA </a>
</td><td><table border="1" cellspacing="0" cellpadding="5" width="100%"><tr><td>
   A team of Hungarian researchers modified Codd's rules. Crossovers can be made with
   only nine cells, and gates can be constructed by passing 7-0 signals.
</td></tr></table></td></tr>
<tr><td>
   <a href="rule:Devore">Devore</a>*
</td><td><table border="1" cellspacing="0" cellpadding="5" width="100%"><tr><td>
   John Devore altered Codd's ruleset to allow for more compact machines.
   Golly has a functioning self-replicator in this ruleset:
   <a href="open:Patterns/Other-Rules/Codd/Devore/Devore-rep.rle">Devore-rep.rle</a>*.
   Adam Goucher made another replicator that uses a weak form of run-length
   encoding to compress the size of the tape:
   <a href="get:http://myweb.tiscali.co.uk/calcy/life/devore/D-compressed-replicator.gz">D-compressed-replicator.gz</a>.
</td></tr></table></td></tr>
<tr><td>
   <a href="rule:Codd2">Codd2</a>*
</td><td><table border="1" cellspacing="0" cellpadding="5" width="100%"><tr><td>
   Tim Hutton realised that Codd's rule table required three extra transitions in order
   to be able to sheath large complex structures. With this rule, an implementation of
   Codd's self-replicating machine was created:
   <a href="get:http://ruletablerepository.googlecode.com/files/Codd-self-rep.zip">Codd-self-rep.zip</a> (12MB) (now contains the full tapes for self-rep!) In addition to this, a replicator has been built in this rule that uses a repeater-emitter loop, similar to <a href="open:Patterns/JvN/Hutton-replicator.rle">Hutton-replicator.rle</a>*: <a href="get:http://ruletablerepository.googlecode.com/files/Codd-linear-rep.zip">Codd-linear-rep.zip</a>. It takes less than one billion generations to replicate.
</td></tr></table></td></tr>
</table>
</p>


<a name="loops"></a>
<h1>Self-replicating loops</h1>

<p>
<table border="0" cellspacing="2" cellpadding="0" width="100%">
<tr><td>
   <a href="rule:Langtons-Loops">Langtons-Loops</a>*
</td><td><table border="1" cellspacing="0" cellpadding="5" width="100%"><tr><td>
   Chris G. Langton extended Codd's rules to allow a totally novel form of simple
   self-replicator - the loop.
</td></tr></table></td></tr>
<tr><td>
   <a href="rule:Byl-Loop">Byl-Loop</a>*
</td><td><table border="1" cellspacing="0" cellpadding="5" width="100%"><tr><td>
   J. Byl managed to reduce the size of Langton's Loop.
</td></tr></table></td></tr>
<tr><td>
   <a href="rule:Chou-Reggia-1">Chou-Reggia-1</a>*
   <a href="rule:Chou-Reggia-2">Chou-Reggia-2</a>*
</td><td><table border="1" cellspacing="0" cellpadding="5" width="100%"><tr><td>
   A further reduction of Langton's Loops - down to just five cells.
   This is a modification of Byl's loop that doesn't even need an external sheath.
   However, the simplicity of it makes it difficult to identify it as a loop.
</td></tr></table></td></tr>
<tr><td>
   <a href="rule:Tempesti">Tempesti</a>*
</td><td><table border="1" cellspacing="0" cellpadding="5" width="100%"><tr><td>
   Gianluca Tempesti's programmable loop that is capable of constructing various
   things inside itself.
</td></tr></table></td></tr>
<tr><td>
   <a href="rule:Perrier">Perrier</a>*
</td><td><table border="1" cellspacing="0" cellpadding="5" width="100%"><tr><td>
   Perrier added universal computation capabilities to Langton's loop by adding
   a program stack and an extensible data tape.
</td></tr></table></td></tr>
<tr><td>
   <a href="rule:SDSR-Loop">SDSR-Loop</a>*
</td><td><table border="1" cellspacing="0" cellpadding="5" width="100%"><tr><td>
   Hiroki Sayama introduced a change to Langton's Loops that caused dead loops
   to disappear, allowing live ones to reproduce further.
</td></tr></table></td></tr>
<tr><td>
   <a href="rule:Evoloop">Evoloop</a>*
</td><td><table border="1" cellspacing="0" cellpadding="5" width="100%"><tr><td>
   Another loop from Sayama, that allows colliding loops to sometimes merge genetic content.
</td></tr></table></td></tr>
<tr><td>
   <a href="get:http://myweb.tiscali.co.uk/calcy/life/GoucherLoops.zip">Goucher's Loops</a>
</td><td><table border="1" cellspacing="0" cellpadding="5" width="100%"><tr><td>
   A 24-state version of Langton's loops, that permits construction and computation universality,
   right turns as well as left turns, genome combination and competition.
</td></tr></table></td></tr>
</table>
</p>


<a name="wireworld"></a>
<h1>WireWorld and derivatives</h1>

<p>
<table border="0" cellspacing="2" cellpadding="0" width="100%">
<tr><td>
   <a href="rule:WireWorld">WireWorld</a>*
</td><td><table border="1" cellspacing="0" cellpadding="5" width="100%"><tr><td>
   Brian Silverman's famous CA for electronic wiring.
</td></tr></table></td></tr>
<tr><td>
   <a href="get:http://myweb.tiscali.co.uk/calcy/life/wireworld-extendable.zip">WWE</a>
</td><td><table border="1" cellspacing="0" cellpadding="5" width="100%"><tr><td>
   A 17-state rule created by Alan Tennant to support universal computation and construction.
   Unlike the original WireWorld rule, this rule supports self-replication. Adam Goucher has
   included 3 of his replicators in the zip file.
</td></tr></table></td></tr>
<tr><td>
   <a href="get:http://myweb.tiscali.co.uk/calcy/life/wireworld-extendable-2.zip">WWE2</a>
</td><td><table border="1" cellspacing="0" cellpadding="5" width="100%"><tr><td>
   A 23-state modification of the Extendable WireWorld rule, again by Alan Tennant.
   This rule differs from the previous one in many respects.
   Firstly, complete self-destruction is possible. Secondly, original WireWorld circuits
   function identically in this rule. Finally, self-modification is much easier.
</td></tr></table></td></tr>
<tr><td>
   <a href="get:http://myweb.tiscali.co.uk/calcy/life/switch.zip">WSwitch</a>
</td><td><table border="1" cellspacing="0" cellpadding="5" width="100%"><tr><td>
   A 5-state rule by Alan Tennant. The rule is based on WireWorld, but has been designed
   so that the construction of logic gates is impossible. Instead, pulse dividers are possible.
</td></tr></table></td></tr>
</table>
</p>


<a name="comp"></a>
<h1>Other computation rules</h1>

<p>
<table border="0" cellspacing="2" cellpadding="0" width="100%">
<tr><td>
   <a href="rule:Banks-I">Banks-I</a>*
   <a href="rule:Banks-II">Banks-II</a>*
   <a href="rule:Banks-III">Banks-III</a>*
   <a href="rule:Banks-IV">Banks-IV</a>*
</td><td><table border="1" cellspacing="0" cellpadding="5" width="100%"><tr><td>
   Edwin Roger Banks made CA that supported universal computation and construction,
   using fewer states than before. The first of these rules allows any finite computation
   to be calculated (equivalent to WireWorld). The second rule allows a finite starting
   configuration to have unbounded memory. The third rule is equivalent to the second rule,
   but it uses the Moore neighborhood to reduce the number of states to just two.
   The fourth rule allows universal construction, hence replication.
</td></tr></table></td></tr>
<tr><td>
   <a href="get:http://myweb.tiscali.co.uk/calcy/life/MinskyCA.zip">MRM</a>
</td><td><table border="1" cellspacing="0" cellpadding="5" width="100%"><tr><td>
   A 4-state rule made by Paul Chapman to support Minsky Register Machines, up to and
   including universal MRMs.  The supplied MRM calculates the nth prime.
</td></tr></table></td></tr>
</table>
</p>


<a name="gases"></a>
<h1>Lattice gases</h1>

<p>
<table border="0" cellspacing="2" cellpadding="0" width="100%">
<tr><td>
   <a href="rule:HPP">HPP</a>*
</td><td><table border="1" cellspacing="0" cellpadding="5" width="100%"><tr><td>
   The HPP lattice gas can be simulated in the Margolus rule, but Brian Wylie showed
   how to simulate it with 16 states and the von Neumann neighborhood.
   Tim Hutton added another 16 'reflection' states to allow the rule to function
   in a bounded, non-toroidal space.
</td></tr></table></td></tr>
<tr><td>
   <a href="get:http://myweb.tiscali.co.uk/calcy/life/DLA.zip">DLA</a>
</td><td><table border="1" cellspacing="0" cellpadding="5" width="100%"><tr><td>
   Diffusion-limited aggregation using the HPP lattice gas. This model was studied
   to simulate the fractal growth characterised by electrolysis of copper sulphate.
</td></tr></table></td></tr>
</table>
</p>

<a name="margolus"></a>
<h1>Margolus neighborhood</h1>

<p>
<table border="0" cellspacing="2" cellpadding="0" width="100%">
<tr><td>
<!-- Margolus neighborhood is not currently supported by Golly
   <a href="rule:DLA-Margolus">DLA-Margolus</a>*
-->
   <a href="rule:DLA-Margolus-emulated">DLA-Margolus-emulated</a>*
</td><td><table border="1" cellspacing="0" cellpadding="5" width="100%"><tr><td>
   Diffusion-limited aggegation in the Margolus neighborhood.
</td></tr></table></td></tr>
<tr><td>
<!-- Margolus neighborhood is not currently supported by Golly
   <a href="rule:BBM-Margolus">BBM-Margolus</a>*
-->
   <a href="rule:BBM-Margolus-emulated">BBM-Margolus-emulated</a>*
</td><td><table border="1" cellspacing="0" cellpadding="5" width="100%"><tr><td>
   Ed Fredkin's Billiard Ball Model in the Margolus neighborhood.
</td></tr></table></td></tr>
<tr><td>
<!-- Margolus neighborhood is not currently supported by Golly
   <a href="rule:Sand-Margolus">Sand-Margolus</a>*
-->
   <a href="rule:Sand-Margolus-emulated">Sand-Margolus-emulated</a>*
</td><td><table border="1" cellspacing="0" cellpadding="5" width="100%"><tr><td>
   MCell's 'Sand' rule in the Margolus neighborhood.
</td></tr></table></td></tr>
</table>
</p>


<a name="turing"></a>
<h1>Langton's Ant and other Turing Machines</h1>

<p>
<table border="0" cellspacing="2" cellpadding="0" width="100%">
<tr><td>
   <a href="rule:Langtons-Ant">Langtons-Ant</a>*
</td><td><table border="1" cellspacing="0" cellpadding="5" width="100%"><tr><td>
   Langton's other famous system. An ant moves around an infinite universe, flipping
   the color of the squares it lands on and turning left or right accordingly.
</td></tr></table></td></tr>
<tr><td>
   <a href="get:http://ruletablerepository.googlecode.com/files/Iceskater%20for%20Golly%202.0.zip">Iceskater</a>
</td><td><table border="1" cellspacing="0" cellpadding="5" width="100%"><tr><td>
   A rule by Jordan Goldstein. An explanation is included in the zip file.
</td></tr></table></td></tr>
<tr><td>
   <a href="rule:Worm-1040512">Worm-1040512</a>*
   <a href="rule:Worm-1042015">Worm-1042015</a>*
   <a href="rule:Worm-1042020">Worm-1042020</a>*
   <a href="rule:Worm-1252121">Worm-1252121</a>*
   <a href="rule:Worm-1525115">Worm-1525115</a>*
</td><td><table border="1" cellspacing="0" cellpadding="5" width="100%"><tr><td>
   Dean Hickerson's implementation of Paterson's Worms. The hexagonal neighborhood
   is emulated using the Moore neighborhood.
</td></tr></table></td></tr>
<tr><td>
   <a href="get:http://myweb.tiscali.co.uk/calcy/life/turing-machines/BusyBeaver3.table">BusyBeaver3</a>
   <a href="get:http://myweb.tiscali.co.uk/calcy/life/turing-machines/BusyBeaver5.table">BusyBeaver5</a>
</td><td><table border="1" cellspacing="0" cellpadding="5" width="100%"><tr><td>
   Adam Goucher has made a program to convert m-state n-symbol Turing machines into rule tables.
   The two example machines are Busy Beavers, Turing machines that try to write as many
   '1's as possible before halting. To run each machine in Golly, seed the universe with
   a single cell of state 2.
</td></tr></table></td></tr>
</table>
</p>


<a name="life"></a>
<h1>Life-inspired CAs</h1>

<p>
<table border="0" cellspacing="2" cellpadding="0" width="100%">
<tr><td>
   <a href="get:http://ruletablerepository.googlecode.com/files/LifeColor_FrancoisBoisson.zip">LifeColor</a>
</td><td><table border="1" cellspacing="0" cellpadding="5" width="100%"><tr><td>
   A colored variant of the Game of Life, by Francois Boisson.
</td></tr></table></td></tr>
<tr><td>
   <a href="rule:LifeOnTheEdge">LifeOnTheEdge</a>*
</td><td><table border="1" cellspacing="0" cellpadding="5" width="100%"><tr><td>
   Franklin T. Adams-Watters described a CA in which all the action occurs on the
   edges of a square grid. Each edge can be on or off and has six neighbors, three at each end.
</td></tr></table></td></tr>
<tr><td>
   <a href="rule:LifeOnTheSlope">LifeOnTheSlope</a>*
</td><td><table border="1" cellspacing="0" cellpadding="5" width="100%"><tr><td>
   An implementation of the above rule, rotated 45 degrees so that only 2 live states are required.
</td></tr></table></td></tr>
<tr><td>
   <a href="get:http://ruletablerepository.googlecode.com/files/HistoricalLife.zip">HistoricalLife</a>
</td><td><table border="1" cellspacing="0" cellpadding="5" width="100%"><tr><td>
   An implementation of the classic game of life that highlights the cells that were ever alive.
   Rule by Dave Greene, translation to a table by Calcyman.
</td></tr></table></td></tr>
<tr><td>
   <a href="get:http://ruletablerepository.googlecode.com/files/LifeHistoryRules.zip">LifeHistory</a>
</td><td><table border="1" cellspacing="0" cellpadding="5" width="100%"><tr><td>
   A five-state extension of the HistoricalLife rule originally by Brice Due.
   The LifeHistory rule is included in Golly but the given zip file contains an optimized version
   of the HistoricalLife rule and several support scripts for both rules.
</td></tr></table></td></tr>
<tr><td>
   <a href="get:http://myweb.tiscali.co.uk/calcy/life/simulators.zip">Life Pattern Emulators</a>
</td><td><table border="1" cellspacing="0" cellpadding="5" width="100%"><tr><td>
   Two rules, "Clouds" by Dean Hickerson and "Primes" by Adam Goucher, designed to simulate
   two of Dean's transcendental Life patterns.  Included in the zip file are the rule tables,
   sample patterns and equivalent Life patterns.
</td></tr></table></td></tr>
</table>
</p>


<a name="misc"></a>
<h1>Miscellaneous</h1>

<p>
<table border="0" cellspacing="2" cellpadding="0" width="100%">
<tr><td>
   <a href="rule:Ed-rep">Ed-rep</a>*
</td><td><table border="1" cellspacing="0" cellpadding="5" width="100%"><tr><td>
   In 1970, Terry Winograd proved that Fredkin's replicator CA (the parity rule B1357/S1357)
   could be extended to N states, as long as N is a prime number. Golly's demo pattern
   <a href="open:Patterns/Other-Rules/Ed-rep.rle">Ed-rep.rle</a>*
   shows a 7-color photo of Ed Fredkin that replicates itself.
</td></tr></table></td></tr>
<tr><td>
   <a href="get:http://myweb.tiscali.co.uk/calcy/life/CyclicCA.table">CyclicCA</a>
</td><td><table border="1" cellspacing="0" cellpadding="5" width="100%"><tr><td>
   A rule investigated by David Griffeath. This rule is a very basic CA that shows
   competition emerging from a random initial seed.
</td></tr></table></td></tr>
<tr><td>
   <a href="get:http://myweb.tiscali.co.uk/calcy/life/JustFriends.table">JustFriends </a>
</td><td><table border="1" cellspacing="0" cellpadding="5" width="100%"><tr><td>
   A non-totalistic 2D binary rule by David Bell.
</td></tr></table></td></tr>
<tr><td>
   <a href="get:http://myweb.tiscali.co.uk/calcy/life/TrickyBees.zip">TrickyBees</a>
</td><td><table border="1" cellspacing="0" cellpadding="5" width="100%"><tr><td>
   A chaotic rule by Alan Tennant where each state becomes progressively more inert
   in which patterns are surprisingly tricky to construct.
</td></tr></table></td></tr>
<tr><td>
   <a href="get:http://ruletablerepository.googlecode.com/files/MazeSolver.zip">MazeSolver</a>
</td><td><table border="1" cellspacing="0" cellpadding="5" width="100%"><tr><td>
   A 13-state rule by Adam Goucher that solves any maze, using a flood fill method to locate the exit,
   before backtracking to the start to highlight the shortest possible route.
</td></tr></table></td></tr>
</table>
</p>


</body>
</html>
